﻿
@ Title: Maximo de un Numero             	         Filename: maximo.s
@ Author: Ivan Adrian Torres FLores	                 Date: 15-Marzo-17
@ Description:Determinar el numero maximo
@ Input: --
@ Output: Numero Maximo Numeros


@ r1 - Utilizado para mantener la direccion de los elemntos de datos
@ r0 - Utilizado para los datos mas grandes
@ r3 - Utilizado para el elemento de dato actual

#######################################
######## segmento de codigo  ##########
#######################################

  .section        .data
  numbers:                             
 .long 3,67,34,222,45,75,54,34,44,33,22,11,66,0
  .globl  _start
  _start:
ldr %r1,=numbers                        @ Coloca r1, para iniciar la dirección de 'números.
ldr %r3, [%r1]                          @ Carga r3 con el primer número
mov %r0, %r3                            @ El número más concurrente debe de ser el más largo
					@  ó Al inicio el numero actual debe ser el mas grande


loop:
   cmp %r3, $0                          @ Revisa si r3 espera a cero. @ se revisa si r3  tiene un 0
   beq exit                             @ Si no salir. @ si se tiene un 0 sale
   ldr %r3, [%r1,#4]!                   @ Carga el siguiente objeto en r3.
   cmp %r3, %r0                         @ Compara r0 con r3.
   ble loop                             @ Inicia la búsqueda si r3<=r0.
   mov %r0, %r3                         @ Pon otro elemento en r3 adentro de r0. 
   bal loop                             @ Repite lo anterior.
   
exit:                                   @ El valor más largo esta o se guarda en r0.
   mov %r7, $1                          @ Prepara la salida.
   svc $0                               @ SE activa el kernel.
   .end                                 @ Fin del código.

####### Data Segment ####################################################
  
  exit:                  	        @ EL VALOR MAS LARGO ESTA EN r0
  mov %r7, $1              	 	@ PREPARA LA SALIDA
  scv $0                	 	@ DESPIERTA EL KERNEL
  .end                     		@ MARCA EL FINAL DEL CODIGO
  
